export default {
  // Common
  common: {
    search: 'Search',
    reset: 'Reset',
    add: 'Add',
    edit: 'Edit',
    delete: 'Delete',
    refresh: 'Refresh',
    submit: 'Submit',
    cancel: 'Cancel',
    confirm: 'Confirm',
    operation: 'Operation',
    status: 'Status',
    enabled: 'Enabled',
    disabled: 'Disabled',
    success: 'Success',
    failed: 'Failed',
    loading: 'Loading...',
    noData: 'No Data',
    total: 'Total {total} records',
    pleaseSelect: 'Please select',
    pleaseInput: 'Please input',
    all: 'All',
    confirmDelete: 'Are you sure you want to delete?',
    deleteSuccess: 'Delete successful',
    addSuccess: 'Add successful',
    editSuccess: 'Edit successful',
    operationSuccess: 'Operation successful',
    operationFailed: 'Operation failed',
    getListFailed: 'Failed to get list',
    saveSuccess: 'Save successful',
    saveFailed: 'Save failed',
    cn: '中文',
    en: 'English'
  },

  // Admin
  admin: {
    title: 'Admin',
    account: 'Account',
    role: 'Role',
    lastLoginTime: 'Last Login Time',
    lastIp: 'Last IP',
    loginCount: 'Login Count',
    password: 'Password',
    notFillNoChange: 'Leave blank to keep unchanged',
    addAdmin: 'Add Admin',
    editAdmin: 'Edit Admin',
    confirmDeleteAdmin: 'Are you sure you want to delete this admin?'
  },

  // Channel Account
  channelAccount: {
    title: 'Channel Account',
    channelName: 'Channel Name',
    accountName: 'Account Name',
    syncDomains: 'Sync Domains',
    paramList: 'Parameter List',
    addParam: 'Add Parameter',
    batchAddParam: 'Batch Add Parameters',
    batchAddParamTitle: 'Batch Add Parameters',
    paramKey: 'Parameter Key',
    paramValue: 'Parameter Value',
    paramDesc: 'Parameter Description',
    addChannelAccount: 'Add Channel Account',
    editChannelAccount: 'Edit Channel Account',
    channelId: 'Channel ID',
    paramId: 'ID',
    inputAccountName: 'Please input account name',
    selectParamKey: 'Please select parameter key',
    inputParamValue: 'Please input parameter value',
    inputParamDesc: 'Please input parameter description',
    unknownChannel: 'Unknown Channel',
    editParam: 'Edit Parameter',
    syncingDomains: 'Syncing domains...',
    syncDomainsSuccess: 'Domain sync successful',
    confirmDeleteParam: 'Are you sure you want to delete parameter "{paramKey}"?',
    totalParams: 'Total {count} parameters',
    noParamsTip: 'No parameters, please click to add',
    keepAtLeastOneParam: 'Keep at least one parameter',
    paramKeyCannotDuplicate: 'Parameter keys cannot be duplicated',
    batchAddSuccess: 'Successfully added {count} parameters'
  },

  // Domain
  domain: {
    title: 'Domain Management',
    domainName: 'Domain Name',
    channelName: 'Channel Name',
    accountName: 'Account Name',
    registrationTime: 'Registration Time',
    expirationTime: 'Expiration Time',
    tags: 'Tags',
    remark: 'Remark',
    server: 'Assigned Server',
    team: 'Assigned Team',
    purpose: 'Purpose',
    setTags: 'Set Tags',
    setRemark: 'Set Remark',
    setOptions: 'Set Options',
    noTags: 'No Tags',
    noRemark: 'No Remark',
    notSet: 'Not Set',
    setTagsSuccess: 'Set tags successful',
    setRemarkSuccess: 'Set remark successful',
    setOptionsSuccess: 'Set options successful',
    sortByExpiration: 'Sort by Expiration',
    ascending: 'Ascending',
    descending: 'Descending',
    inputDomainName: 'Please input domain name',
    inputRemark: 'Please input remark content'
  },

  // Domain Parameter
  domainParam: {
    title: 'Domain Parameters',
    paramId: 'ID',
    channelName: 'Channel Name',
    accountName: 'Account Name',
    paramKey: 'Parameter Key',
    paramValue: 'Parameter Value',
    paramDesc: 'Parameter Description',
    addParam: 'Add Parameter',
    editParam: 'Edit Parameter',
    inputParamKey: 'Please input parameter key',
    inputParamValue: 'Please input parameter value',
    inputParamDesc: 'Please input parameter description',
    confirmDeleteParam: 'Are you sure you want to delete parameter "{paramKey}"?'
  },

  // Domain Tag
  domainTag: {
    title: 'Domain Tags',
    tagId: 'ID',
    tagName: 'Tag Name',
    tagDesc: 'Tag Description',
    createTime: 'Create Time',
    updateTime: 'Update Time',
    noDesc: 'No Description',
    addTag: 'Add Tag',
    editTag: 'Edit Tag',
    inputTagName: 'Please input tag name',
    inputTagDesc: 'Please input tag description',
    confirmDeleteTag: 'Are you sure you want to delete tag "{tagName}"?'
  },

  // Purpose
  purpose: {
    title: 'Purpose Management',
    typeId: 'Purpose ID',
    typeName: 'Purpose Name',
    addPurpose: 'Add Purpose',
    editPurpose: 'Edit Purpose',
    inputPurposeName: 'Please input purpose name',
    confirmDeletePurpose: 'Are you sure you want to delete purpose "{typeName}"?',
    getListFailed: 'Failed to get purpose list'
  },

  // Server
  server: {
    title: 'Server Management',
    serverId: 'Server ID',
    serverName: 'Server Name',
    addServer: 'Add Server',
    editServer: 'Edit Server',
    inputServerName: 'Please input server name',
    confirmDeleteServer: 'Are you sure you want to delete server "{serverName}"?',
    getListFailed: 'Failed to get server list'
  },

  // Team
  team: {
    title: 'Team Management',
    teamId: 'Team ID',
    teamName: 'Team Name',
    addTeam: 'Add Team',
    editTeam: 'Edit Team',
    inputTeamName: 'Please input team name',
    confirmDeleteTeam: 'Are you sure you want to delete team "{teamName}"?',
    getListFailed: 'Failed to get team list'
  },

  // Role
  role: {
    title: 'Role Management',
    roleId: 'Role ID',
    roleName: 'Role Name',
    roleDesc: 'Role Description',
    remark: 'Remark',
    addRole: 'Add Role',
    editRole: 'Edit Role',
    modify: 'Modify',
    assignPermission: 'Assign Permission',
    inputRoleName: 'Please input role name',
    inputRoleDesc: 'Please input role description',
    confirmDeleteRole: 'Are you sure you want to delete role "{roleName}"?',
    saveRights: 'Save Rights'
  },

  // Whitelist
  whitelist: {
    title: 'IP Whitelist',
    ip: 'IP Address',
    ipAddress: 'IP Address',
    description: 'Description',
    remark: 'Remark',
    addIp: 'Add IP',
    editIp: 'Edit IP',
    addAccount: 'Added By',
    createTime: 'Create Time',
    inputIp: 'Please input IP address',
    inputIpPlaceholder: 'Please input IP address, e.g.: 192.168.1.1',
    inputDescription: 'Please input description',
    inputRemark: 'Please input remark',
    confirmDeleteIp: 'Are you sure you want to delete IP "{ip}"?',
    addIpWhitelist: 'Add IP Whitelist'
  },

  // Operation Log
  operation: {
    title: 'Operation Log',
    operationId: 'Operation ID',
    operationName: 'Operator',
    operationTime: 'Operation Time',
    businessType: 'Business Type',
    operatorType: 'Operator Type',
    operationDetail: 'Operation Detail',
    viewDetail: 'View Detail',
    other: 'Other',
    add: 'Add',
    modify: 'Modify',
    delete: 'Delete',
    unknown: 'Unknown',
    backendUser: 'Backend User',
    mobileUser: 'Mobile User',
    operationIp: 'Host Address',
    operationLocation: 'Operation Location',
    operationUrl: 'URL',
    requestMethod: 'Request Method',
    method: 'Method Name',
    operationParam: 'Parameters',
    jsonResult: 'Return Result',
    errorMsg: 'Error Message'
  },

  // Login Log
  login: {
    title: 'Login Log',
    userName: 'Username',
    loginTime: 'Login Time',
    ipaddr: 'IP Address',
    loginLocation: 'Login Location',
    browser: 'Browser',
    os: 'Operating System',
    msg: 'Message'
  },

  // Logs Management
  logs: {
    title: 'Logs Management',
    userName: 'Username',
    loginTime: 'Login Time',
    ipaddr: 'IP Address',
    loginLocation: 'Login Location',
    browser: 'Browser',
    os: 'Operating System',
    msg: 'Message'
  },

  // Channel
  channel: {
    title: 'Channel Management',
    channelId: 'Channel ID',
    channelName: 'Channel Name',
    enabled: 'Enabled Status',
    editChannel: 'Edit Channel'
  },

  // Component
  component: {
    // WTable
    totalRecords: 'Total {total} records',
    
    // WForm
    pleaseInput: 'Please input {field}',
    pleaseSelect: 'Please select {field}',
    fieldRequired: '{field} is required',
    fieldMaxLength: '{field} length cannot exceed {max} characters',
    fieldMinLength: '{field} length cannot be less than {min} characters',
    inputPlaceholder: 'Please input {title}',
    selectPlaceholder: 'Please select {title}',
    requiredMessage: '{title} is required',
    maxLengthMessage: '{title} length cannot exceed {max} characters',
    minLengthMessage: '{title} length cannot be less than {min} characters',
    
    // AccountSelector
    selectOrSearchAccount: 'Please select or search account name',
    
    // Common component text
    data: 'Data',
    pagination: 'Pagination Object',
    size: 'Size',
    cols: 'Columns',
    
    // Form related
    inputField: 'Input Field',
    passwordField: 'Password Field',
    textareaField: 'Textarea Field',
    selectField: 'Select Field',
    dateField: 'Date Field',
    switchField: 'Switch Field',
    radioField: 'Radio Field',
    checkboxField: 'Checkbox Field',
    accountSelector: 'Account Selector',
    slotField: 'Slot Field',
    formRef: 'Form Reference',
    configItem: 'Configuration Item',
    dataEntity: 'Data Entity',
    submitButtonText: 'Submit Button Text',
    labelWidth: 'Label Width',
    debounceStorage: 'Debounce Storage',
    getPlaceholder: 'Get Placeholder Text',
    mergeValidationRules: 'Merge Validation Rules',
    handleInput: 'Handle Input Event',
    validateForm: 'Validate Form and Return Data',
    submitForm: 'Submit Form Handler',
    clearDebounce: 'Clear Debounce Functions'
  },

  // App
  app: {
    leftSidebar: 'Left',
    area: 'Area',
    top: 'Top',
    title: 'Title',
    contentArea: 'Content Area',
    unnamed: 'Unnamed',
    menu: 'Menu',
    mainContent: 'Main Content',
    header: 'Header'
  },

  // Personal Center
  me: {
    title: 'Personal Center',
    account: 'Account',
    role: 'Role',
    modifyPassword: 'Modify Password',
    logout: 'Logout',
    oldPassword: 'Old Password',
    newPassword: 'New Password',
    confirmPassword: 'Confirm Password',
    passwordMismatch: 'The two inputs do not match',
    confirmLogout: 'Are you sure you want to logout?',
    passwordModifySuccess: 'Password modified successfully'
  },

  // Login
  login: {
    title: 'Login',
    username: 'Username',
    password: 'Password',
    code: 'Verification Code',
    loginButton: 'Login',
    handleMenus: 'Handle Menus',
    personalCenter: 'Personal Center'
  },

  // Welcome Page
  welcome: {
    title: 'Welcome to Domain Management System',
    subtitle: 'Please select a feature module from the left menu to get started',
    domainManagement: 'Domain Management',
    domainManagementDesc: 'Manage domain information, tags and remarks',
    channelManagement: 'Channel Management',
    channelManagementDesc: 'Manage channels and account information',
    serverManagement: 'Server Management',
    serverManagementDesc: 'Manage server configuration',
    teamManagement: 'Team Management',
    teamManagementDesc: 'Manage teams and members'
  },

  // Options List
  optionsList: {
    server: 'Server',
    purpose: 'Purpose',
    team: 'Team List'
  },

  // Tab Manager
  tabManager: {
    tabList: 'Tab List',
    currentActiveTab: 'Current Active Tab',
    addNewTab: 'Add New Tab',
    unnamed: 'Unnamed',
    checkDuplicateTab: 'Check if duplicate tab exists',
    createNewTab: 'Create New Tab',
    handleTabEdit: 'Handle Tab Edit (Close)',
    handleTabSwitch: 'Handle Tab Switch',
    closeTab: 'Close Tab',
    closeActiveTab: 'If closing the current active tab, switch to another tab',
    noTabsLeft: 'If no tabs left, go to welcome page',
    switchToNextTab: 'Switch to next tab, if no next then switch to previous',
    listenRouteChange: 'Listen to route changes, auto add tab',
    listenActiveTabChange: 'Listen to activeTab changes, sync route',
    initCurrentRouteTab: 'Initialize by adding current route tab',
    closeButton: 'Close Button'
  },

  // WModal Component
  wModal: {
    width: 'Width',
    clickMaskClose: 'Click Mask to Close',
    showHide: 'Show Hide'
  },

  // i18n Configuration
  i18n: {
    contentFile: 'Content File',
    context: 'Context',
    i18nObject: 'i18n Object',
    globalInjection: 'Global Injection $t',
    setLocale: 'Set Locale',
    setMessages: 'Set Messages'
  },

  // Style Related
  style: {
    globalStyle: 'Global Style',
    publicVariables: 'Public variables file, global variables written here, starting with $hf-',
    pagination: 'Pagination',
    publicStyle: 'Public styles, can be mixin, function, common public styles, etc.',
    becomeFlex: 'Become flex',
    centerFlex: 'Become center flex',
    verticalFlex: 'Vertical flex',
    overflowHidden: 'Overflow hidden',
    gridLayout: 'Grid layout',
    warning: 'Warning',
    error: 'Error',
    success: 'Success',
    resetStyle: 'Reset style',
    autoWrap: 'Auto wrap',
    forceWordBreak: 'Force English word break',
    blockLevel: 'Set tags as block level',
    removeInputStyle: 'Remove default input tag style',
    disableResize: 'Disable manual resize of textarea',
    removeShadow: 'Remove pressed shadow box',
    removeUnderline: 'Remove a tag underline',
    removeListStyle: 'Remove list dots',
    removeImageBorder: 'Remove IE image border',
    removeYellowBackground: 'Fix chrome default yellow background',
    setScrollbarStyle: 'Set default scrollbar style',
    publicReference: 'Public reference file, only used to centrally import other scss files',
    tableStyleOptimization: 'Table style optimization',
    searchFormStyle: 'Search form style'
  },

  // API Related
  api: {
    // Admin API
    adminList: 'Admin List',
    addAdmin: 'Add Admin',
    modifyAdmin: 'Modify Admin',
    deleteAdmin: 'Delete Admin',
    
    // Channel API
    channelInterface: 'Channel Interface File',
    domainChannelList: 'Domain Management Channel List',
    addDomainChannel: 'Add Domain Management Channel',
    editDomainChannel: 'Edit Domain Management Channel',
    domainChannelAccountList: 'Domain Management Channel Account List',
    addDomainChannelAccount: 'Add Domain Management Channel Account',
    editDomainChannelAccount: 'Edit Domain Management Channel Account',
    syncChannelAccountDomains: 'Sync Channel Account Domains',
    
    // Domain API
    domainInterface: 'Domain Management Interface File',
    domainListQuery: 'Domain List Query',
    setDomainRemark: 'Set Domain Remark',
    setDomainOptions: 'Set Domain Options',
    domainOptionsEnum: 'Domain All Options Enum',
    domainParamList: 'Domain Management Channel Account Parameter List',
    addDomainParam: 'Add Domain Management Channel Account Parameter',
    editDomainParam: 'Edit Domain Management Channel Account Parameter',
    batchAddDomainParam: 'Batch Add Domain Management Channel Account Parameters',
    deleteDomainParam: 'Delete Domain Management Channel Account Parameter',
    domainParamEnum: 'Domain Management Channel Account Parameter Enum',
    domainParamNotAddedList: 'Domain Management Channel Parameters Not Added List',
    tagListQuery: 'Tag List Query',
    addTag: 'Add Tag'
  },

  // Router Related
  router: {
    allComponents: 'All Components',
    routes: 'Routes',
    skipNonPrimaryDirectory: 'Skip if not primary directory',
    folderName: 'Folder Name',
    checkAsyncLoad: 'Check if async load needed',
    routeGuard: 'Route Guard',
    redirectToLogin: 'Redirect to login if not logged in and auth required',
    normalReturn: 'Normal return for others'
  },

  // Constants Related
  constants: {
    systemConstants: 'System Constants Management',
    statusConstants: 'Status Constants',
    commonStatus: 'Common Status',
    businessStatus: 'Business Status',
    loginStatus: 'Login Status',
    operationType: 'Operation Type',
    statusTextMapping: 'Status Text Mapping',
    statusStyleMapping: 'Status Style Mapping',
    paginationConstants: 'Pagination Constants',
    getStatusText: 'Get Status Text',
    getStatusStyle: 'Get Status Style',
    unknown: 'Unknown',
    active: 'Active',
    inactive: 'Inactive',
    expired: 'Expired',
    pending: 'Pending'
  },

  // Error Codes
  code: {
    "4000": "Not logged in",
    "4001": "Parameter error",
    "4002": "Verification code error",
    "4003": "Account or password error",
    "4004": "Role name cannot be empty",
    "4005": "Remark cannot be empty",
    "4007": "Super administrator cannot be modified",
    "4008": "Role does not exist",
    "4009": "Role name unchanged",
    "4010": "Role name already exists",
    "4011": "Role name already exists",
    "4012": "Super admin cannot be deleted",
    "4013": "Current role has users, cannot be deleted",
    "4015": "Account cannot be empty",
    "4016": "Password cannot be empty",
    "4017": "Role cannot be empty",
    "4018": "Account already exists",
    "4019": "Super admin cannot be edited",
    "4020": "IP not whitelisted",
    "4021": "User is disabled",
    "4022": "Google verification code error",
    "4023": "Old and new passwords are the same",
    "4024": "Account does not exist",
    "4025": "Password error",
    "4100": "Tag does not exist",
    "4101": "Tag information unchanged",
    "4102": "Tag name already exists",
    "4103": "Tag name cannot be empty",
    "4104": "Tag cannot be empty",
    "4105": "Domain cannot be empty",
    "4106": "Domain tag already exists",
    "4201": "API call failed",
    "4202": "API account does not exist or is not enabled",
    "4203": "No available TLD",
    "500": "System error",
    "503": "System maintenance"
  }
};
